export class Help {
  constructor() {
    this.activeSection = 'overview';
    this.searchTerm = '';
    this.filteredContent = [];
    
    this.helpContent = {
      overview: {
        title: '概述',
        icon: '📖',
        content: `
          <h3>欢迎使用文档转换器</h3>
          <p>这是一个功能强大的在线文档转换工具，支持多种文档格式之间的相互转换。</p>
          
          <h4>主要功能：</h4>
          <ul>
            <li>📄 单文件转换 - 快速转换单个文档</li>
            <li>📚 批量转换 - 同时处理多个文件</li>
            <li>⚙️ 格式设置 - 自定义转换参数</li>
            <li>📋 转换历史 - 查看和管理转换记录</li>
          </ul>
          
          <h4>支持的格式：</h4>
          <ul>
            <li>Word文档 (.docx)</li>
            <li>Markdown (.md)</li>
            <li>PDF文档 (.pdf)</li>
            <li>纯文本 (.txt)</li>
          </ul>
        `
      },
      
      singleConvert: {
        title: '单文件转换',
        icon: '📄',
        content: `
          <h3>如何使用单文件转换</h3>
          
          <h4>步骤1：选择文件</h4>
          <p>您可以通过以下方式选择要转换的文件：</p>
          <ul>
            <li>点击"选择文件"按钮，从文件浏览器中选择</li>
            <li>直接将文件拖拽到上传区域</li>
          </ul>
          
          <h4>步骤2：选择目标格式</h4>
          <p>根据源文件格式，系统会自动显示可用的目标格式选项。</p>
          
          <h4>步骤3：配置转换选项（可选）</h4>
          <p>您可以在格式设置页面中配置转换参数，如：</p>
          <ul>
            <li>是否添加标题</li>
            <li>保留换行符</li>
            <li>图片处理方式</li>
            <li>字体和页面设置</li>
          </ul>
          
          <h4>步骤4：开始转换</h4>
          <p>点击"开始转换"按钮，等待转换完成后下载结果文件。</p>
          
          <div class="tip">
            <strong>💡 提示：</strong>
            <p>支持的最大文件大小为 1GB，转换过程中请保持网络连接稳定。</p>
          </div>
        `
      },
      
      batchConvert: {
        title: '批量转换',
        icon: '📚',
        content: `
          <h3>如何使用批量转换</h3>
          
          <h4>批量转换的优势</h4>
          <ul>
            <li>一次性处理多个文件，提高效率</li>
            <li>所有文件使用相同的转换设置</li>
            <li>支持批量下载转换结果</li>
          </ul>
          
          <h4>使用步骤</h4>
          <ol>
            <li><strong>选择多个文件：</strong>使用Ctrl+点击或Shift+点击选择多个文件</li>
            <li><strong>确认格式一致：</strong>所有文件必须是相同的源格式</li>
            <li><strong>选择目标格式：</strong>选择要转换到的目标格式</li>
            <li><strong>开始批量转换：</strong>点击"批量转换"按钮</li>
            <li><strong>下载结果：</strong>可以单独下载或批量下载所有成功转换的文件</li>
          </ol>
          
          <h4>注意事项</h4>
          <ul>
            <li>批量转换时，如果某个文件转换失败，不会影响其他文件的转换</li>
            <li>转换进度会实时显示，您可以看到每个文件的处理状态</li>
            <li>建议一次不要选择过多文件，以免影响转换速度</li>
          </ul>
          
          <div class="warning">
            <strong>⚠️ 注意：</strong>
            <p>批量转换时请确保网络连接稳定，避免在转换过程中关闭浏览器。</p>
          </div>
        `
      },
      
      formatSettings: {
        title: '格式设置',
        icon: '⚙️',
        content: `
          <h3>格式设置说明</h3>
          
          <h4>Markdown 设置</h4>
          <ul>
            <li><strong>添加标题：</strong>是否在文档开头添加一级标题</li>
            <li><strong>保留换行符：</strong>保持原文档的换行格式</li>
            <li><strong>添加分页符：</strong>在适当位置添加分页标记</li>
            <li><strong>使用代码块：</strong>将代码内容格式化为代码块</li>
            <li><strong>保留图片：</strong>是否在转换后保留图片</li>
            <li><strong>图片格式：</strong>选择图片的引用方式</li>
          </ul>
          
          <h4>Word 设置</h4>
          <ul>
            <li><strong>字体大小：</strong>设置文档的默认字体大小</li>
            <li><strong>字体族：</strong>选择文档使用的字体</li>
            <li><strong>行间距：</strong>设置行与行之间的间距</li>
            <li><strong>页边距：</strong>设置页面的边距大小</li>
            <li><strong>包含图片：</strong>是否在转换后包含图片</li>
            <li><strong>保留格式：</strong>尽可能保持原文档的格式</li>
          </ul>
          
          <h4>PDF 设置</h4>
          <ul>
            <li><strong>页面大小：</strong>选择PDF的页面尺寸（A4、A3等）</li>
            <li><strong>页面方向：</strong>纵向或横向</li>
            <li><strong>字体大小：</strong>PDF中文字的大小</li>
            <li><strong>字体族：</strong>PDF使用的字体</li>
            <li><strong>包含图片：</strong>是否在PDF中包含图片</li>
            <li><strong>质量：</strong>PDF的输出质量</li>
          </ul>
          
          <h4>设置管理</h4>
          <ul>
            <li><strong>保存设置：</strong>设置会自动保存到本地存储</li>
            <li><strong>重置设置：</strong>恢复到默认设置</li>
            <li><strong>导出设置：</strong>将设置保存为JSON文件</li>
            <li><strong>导入设置：</strong>从JSON文件加载设置</li>
          </ul>
        `
      },
      
      history: {
        title: '转换历史',
        icon: '📋',
        content: `
          <h3>转换历史功能</h3>
          
          <h4>查看历史记录</h4>
          <p>转换历史页面显示您最近的转换记录，包括：</p>
          <ul>
            <li>原文件名和转换后文件名</li>
            <li>源格式和目标格式</li>
            <li>文件大小</li>
            <li>转换时间</li>
            <li>转换状态（成功/失败）</li>
          </ul>
          
          <h4>搜索和过滤</h4>
          <ul>
            <li><strong>搜索：</strong>按文件名搜索历史记录</li>
            <li><strong>格式过滤：</strong>按文件格式筛选记录</li>
            <li><strong>排序：</strong>按时间、文件名、大小等排序</li>
          </ul>
          
          <h4>历史记录管理</h4>
          <ul>
            <li><strong>重新下载：</strong>如果转换成功，可以重新下载结果文件</li>
            <li><strong>删除记录：</strong>删除不需要的历史记录</li>
            <li><strong>清空历史：</strong>清除所有历史记录</li>
            <li><strong>导出历史：</strong>将历史记录导出为JSON文件</li>
          </ul>
          
          <h4>统计信息</h4>
          <p>页面顶部显示转换统计信息：</p>
          <ul>
            <li>总转换次数</li>
            <li>成功转换次数</li>
            <li>失败转换次数</li>
            <li>成功率</li>
          </ul>
          
          <div class="info">
            <strong>ℹ️ 信息：</strong>
            <p>历史记录最多保存100条，超出部分会自动删除最旧的记录。</p>
          </div>
        `
      },
      
      troubleshooting: {
        title: '故障排除',
        icon: '🔧',
        content: `
          <h3>常见问题解决方案</h3>
          
          <h4>文件上传问题</h4>
          <div class="faq-item">
            <strong>Q: 为什么无法上传文件？</strong>
            <p>A: 请检查以下几点：</p>
            <ul>
              <li>文件大小是否超过1GB限制</li>
              <li>文件格式是否受支持</li>
              <li>网络连接是否正常</li>
              <li>浏览器是否支持文件上传功能</li>
            </ul>
          </div>
          
          <div class="faq-item">
            <strong>Q: 支持哪些文件格式？</strong>
            <p>A: 目前支持以下格式：</p>
            <ul>
              <li>Word文档 (.docx)</li>
              <li>Markdown文件 (.md)</li>
              <li>PDF文档 (.pdf)</li>
              <li>纯文本文件 (.txt)</li>
            </ul>
          </div>
          
          <h4>转换问题</h4>
          <div class="faq-item">
            <strong>Q: 转换失败怎么办？</strong>
            <p>A: 转换失败可能的原因：</p>
            <ul>
              <li>文件损坏或格式不正确</li>
              <li>文件内容过于复杂</li>
              <li>网络连接中断</li>
              <li>服务器临时不可用</li>
            </ul>
            <p>解决方法：</p>
            <ul>
              <li>检查原文件是否能正常打开</li>
              <li>尝试重新转换</li>
              <li>检查网络连接</li>
              <li>稍后再试</li>
            </ul>
          </div>
          
          <div class="faq-item">
            <strong>Q: 转换后的文件格式不正确？</strong>
            <p>A: 请检查：</p>
            <ul>
              <li>是否选择了正确的目标格式</li>
              <li>原文件是否包含特殊内容</li>
              <li>格式设置是否合适</li>
            </ul>
          </div>
          
          <h4>性能问题</h4>
          <div class="faq-item">
            <strong>Q: 转换速度很慢？</strong>
            <p>A: 转换速度受以下因素影响：</p>
            <ul>
              <li>文件大小</li>
              <li>文件复杂度</li>
              <li>网络速度</li>
              <li>服务器负载</li>
            </ul>
            <p>建议：</p>
            <ul>
              <li>避免转换过大的文件</li>
              <li>在网络状况良好时进行转换</li>
              <li>避免同时进行多个转换任务</li>
            </ul>
          </div>
          
          <h4>浏览器兼容性</h4>
          <div class="faq-item">
            <strong>Q: 哪些浏览器受支持？</strong>
            <p>A: 推荐使用以下现代浏览器：</p>
            <ul>
              <li>Chrome 80+</li>
              <li>Firefox 75+</li>
              <li>Safari 13+</li>
              <li>Edge 80+</li>
            </ul>
          </div>
          
          <div class="contact">
            <h4>联系支持</h4>
            <p>如果问题仍未解决，请联系技术支持：</p>
            <ul>
              <li>📧 邮箱：support@example.com</li>
              <li>💬 在线客服：工作日 9:00-18:00</li>
            </ul>
          </div>
        `
      }
    };
    
    this.updateFilteredContent();
  }

  setActiveSection(sectionId) {
    this.activeSection = sectionId;
  }

  setSearchTerm(term) {
    this.searchTerm = term;
    this.updateFilteredContent();
  }

  setActiveSectionAndSearch(sectionId, searchTerm) {
    this.setActiveSection(sectionId);
    this.setSearchTerm(searchTerm);
  }

  updateFilteredContent() {
    if (!this.searchTerm) {
      this.filteredContent = Object.keys(this.helpContent);
      return;
    }

    this.filteredContent = Object.keys(this.helpContent).filter(key => {
      const section = this.helpContent[key];
      return section.title.toLowerCase().includes(this.searchTerm) ||
             section.content.toLowerCase().includes(this.searchTerm);
    });
  }

  getSectionContent(sectionId) {
    return this.helpContent[sectionId] || null;
  }

  getAllSections() {
    return Object.keys(this.helpContent).map(key => ({
      id: key,
      ...this.helpContent[key]
    }));
  }

  getFilteredSections() {
    return this.filteredContent.map(key => ({
      id: key,
      ...this.helpContent[key]
    }));
  }

  highlightSearchTerm(content) {
    if (!this.searchTerm) return content;
    
    const regex = new RegExp(`(${this.searchTerm})`, 'gi');
    return content.replace(regex, '<mark>$1</mark>');
  }

  printHelp() {
    const printWindow = window.open('', '_blank');
    const content = this.getSectionContent(this.activeSection);
    
    if (content) {
      printWindow.document.write(`
        <html>
          <head>
            <title>${content.title} - 帮助文档</title>
            <style>
              body { font-family: Arial, sans-serif; margin: 20px; }
              h3 { color: #333; }
              h4 { color: #666; }
              ul, ol { margin-left: 20px; }
              .tip, .warning, .info { 
                padding: 10px; 
                margin: 10px 0; 
                border-left: 4px solid #ccc; 
                background: #f9f9f9; 
              }
              .tip { border-color: #28a745; }
              .warning { border-color: #ffc107; }
              .info { border-color: #17a2b8; }
            </style>
          </head>
          <body>
            <h1>${content.icon} ${content.title}</h1>
            ${content.content}
          </body>
        </html>
      `);
      printWindow.document.close();
      printWindow.print();
    }
  }

  exportHelp() {
    const allContent = Object.keys(this.helpContent).map(key => {
      const section = this.helpContent[key];
      return `# ${section.icon} ${section.title}\n\n${section.content.replace(/<[^>]*>/g, '')}\n\n`;
    }).join('---\n\n');

    const blob = new Blob([allContent], { type: 'text/markdown' });
    const url = URL.createObjectURL(blob);
    
    const link = document.createElement('a');
    link.href = url;
    link.download = 'help-documentation.md';
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
    
    URL.revokeObjectURL(url);
  }
} 